﻿/// <reference path="../Core.ts" />

module Supernova {

    var profile1 = new GeneratorProfile('Supernovice (Tiny galaxy, plenty of resources)');
    profile1.systems.count.maximum = 5;
    profile1.systems.minPlanets = 7;
    profile1.systems.maxPlanets = 12;
    profile1.systems.chanceNoPlanets = 0.1;
    profile1.systems.maxPopulation = 25;
    profile1.systems.chanceBarren = 0.4;
    profile1.systems.chanceHabitable = 0.5;
    profile1.systems.chanceGas = 0.1;
    profile1.home.systemDesirabilityPercentile = 1.0;
    profile1.resources.initialScience = 90;
    profile1.resources.initialGold = 2000;
    profile1.goodies.minPerSystemMultiplier = 0.4;
    profile1.goodies.maxPerSystemMultiplier = 0.6;
    profile1.goodies.values.gold = [250, 300, 350, 400, 450, 500];
    profile1.goodies.values.science = [15, 20, 25];
    profile1.science.rate.noFacility = 0.025;
    profile1.science.rate.withFacility = 0.1;
    profile1.science.perExploredSystem = 25;
    profile1.wrecks.perHumanPlayer = 0;
    profile1.wrecks.perSystem = 2;
    profile1.wrecks.perHumanPlayerNearHomeSystem = 3;
    profile1.ai.minimumNests = 4;
    profile1.ai.spawn.initialWait = 120;
    profile1.ai.spawn.timePerLevel = 90;

    var profile2 = new GeneratorProfile('Relatively Easy (Small galaxy)');
    profile2.systems.count.maximum = 15;
    profile2.home.systemDesirabilityPercentile = 0.7;
    profile2.goodies.minPerSystemMultiplier = 0.5;
    profile2.goodies.maxPerSystemMultiplier = 0.6;
    profile2.wrecks.perHumanPlayer = 0;
    profile2.wrecks.perSystem = 0.8;
    profile2.ai.spawn.initialWait = 20;
    profile2.ai.minimumNests = 14;    

    var profile3 = new GeneratorProfile('Normal Difficulty (Regular galaxy)');
    profile3.systems.count.maximum = 30;
    profile3.goodies.minPerSystemMultiplier = 0.5;
    profile3.goodies.maxPerSystemMultiplier = 0.7;
    profile3.ai.minimumNests = 29;

    var profile4 = new GeneratorProfile('Difficult (Large galaxy)');
    profile4.systems.count.maximum = 50;
    profile4.home.systemDesirabilityPercentile = 0.4;
    profile4.goodies.minPerSystemMultiplier = 0.5;
    profile4.goodies.maxPerSystemMultiplier = 0.7;
    profile4.wrecks.perHumanPlayer = 0;
    profile4.wrecks.perSystem = 0.25;
    profile4.ai.minimumNests = 49;
    
    var profile5 = new GeneratorProfile('Almost Impossible (Very large galaxy, tough AI)');
    profile5.systems.count.maximum = 80;
    profile5.home.systemDesirabilityPercentile = 0.25;
    profile5.goodies.minPerSystemMultiplier = 0.4;
    profile5.goodies.maxPerSystemMultiplier = 0.5;
    profile5.science.perExploredSystem = 5;
    profile5.wrecks.perHumanPlayer = 0;
    profile5.wrecks.perSystem = 0.15;
    profile5.wrecks.perHumanPlayerNearHomeSystem = 1;
    profile5.ai.minimumNests = 79;
    profile5.ai.spawn.initialWait = 0;
    profile5.ai.spawn.timePerLevel = 45;

    var profile6 = new GeneratorProfile('Duel (difficult 1 v 1)');
    profile6.systems.count.maximum = 2;
    profile6.systems.minPlanets = 11;
    profile6.systems.maxPlanets = 15;
    profile6.systems.chanceNoPlanets = 0;
    profile6.systems.maxPopulation = 30;
    profile6.systems.chanceBarren = 0.5;
    profile6.systems.chanceHabitable = 0.4;
    profile6.systems.chanceGas = 0.1;
    profile6.systems.maxPlanetDistance = 1.5;
    profile6.home.startingPopulation = 8;
    profile6.home.systemDesirabilityPercentile = 0;
    profile6.resources.initialScience = 70;
    profile6.resources.initialGold = 1500;
    profile6.goodies.minPerSystemMultiplier = 2;
    profile6.goodies.maxPerSystemMultiplier = 2;
    profile6.goodies.values.gold = [200, 250, 300, 350, 400];
    profile6.goodies.values.science = [15, 20, 25];
    profile6.science.perExploredSystem = 20;
    profile6.gold.rate.noComms = 0.05;
    profile6.gold.rate.withComms = 0.25;
    profile6.gold.rate.withMines = 7.5;
    profile6.wrecks.perHumanPlayer = 0;
    profile6.wrecks.perSystem = 3;
    profile6.wrecks.perHumanPlayerNearHomeSystem = 0;
    profile6.wrecks.minUpgradesOutsideSystem = 1;
    profile6.wrecks.maxUpgradesOutsideSystem = 1;
    profile6.ai.minimumNests = 8;
    profile6.ai.spawn.initialWait = 0;
    profile6.ai.spawn.timePerLevel = 50;
    profile6.ai.spawn.progressionFactor = 1.25;

    export var generatorProfiles: Array<GeneratorProfile> = [profile1, profile2, profile3, profile4, profile5, profile6];

}